package br.com.agenda.dao.impl;

import org.apache.tapestry5.hibernate.HibernateSessionManager;
import org.apache.tapestry5.services.ApplicationStateManager;
import org.hibernate.criterion.Restrictions;

import br.com.agenda.dao.UsuarioDAO;
import br.com.agenda.entities.Usuario;
import br.com.agenda.util.Encrypt;

public class UsuarioDAOImpl extends GenericDAOImpl implements UsuarioDAO {

	public UsuarioDAOImpl(HibernateSessionManager hibernateSessionManager,
			ApplicationStateManager asm) {
		super(hibernateSessionManager, asm);
		// TODO Auto-generated constructor stub
	}

	public String saveEncrypt(Usuario usuario) {
		Usuario u = findByLogin(usuario.getLogin());
		if(u != null){
			return "O usuário de nome: "+ u.getNome() +" já está cadastrado com login: "+u.getLogin();
		}
		else{
			usuario.setSenha(Encrypt.encryptMD5(usuario.getSenha()));
			super.saveOrUpdate(usuario);
			return null;
		}
	}

	public Usuario findByLogin(String login) {
		return (Usuario) this.hsm.getSession().createCriteria(Usuario.class).add(Restrictions.eq("login", login)).uniqueResult();
	}

}
